// TelnetCommandInterpreter.h: interface for the CTelnetCommandInterpreter class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_TELNETCOMMANDINTERPRETER_H__A54C041C_49E5_40EE_8AB9_AF4124ACA59C__INCLUDED_)
#define AFX_TELNETCOMMANDINTERPRETER_H__A54C041C_49E5_40EE_8AB9_AF4124ACA59C__INCLUDED_

#include "TelnetCommand.h"
#include "ITelnetOptionCollection.h"
#include "ITelnetDataSender.h"
#include "TelnetLogger.h"

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CTelnetLayer;

class CTelnetCommandInterpreter  
{
private:
	int m_logSlot;
	int m_commandCharCount;
	BOOL m_bProcessing;
	ITelnetDataSender *m_pTelnetDataSender;
	ITelnetOptionCollection *m_pOptionCol;

	CTelnetCommand *m_pCurCommand;
	void setCurCommand(CTelnetCommand *pCommand);

	CTelnetLogger *m_pTelnetLogger;

public:
	BOOL EatChar(char c);

	void SetTelnetLogger(CTelnetLogger *pTelnetLogger);
	CTelnetCommandInterpreter(ITelnetDataSender *pTelnetDataSender, ITelnetOptionCollection *pOptionCol);
	virtual ~CTelnetCommandInterpreter();

};

#endif // !defined(AFX_TELNETCOMMANDINTERPRETER_H__A54C041C_49E5_40EE_8AB9_AF4124ACA59C__INCLUDED_)
